import org.junit.Test;

import java.io.UnsupportedEncodingException;

public class Person {
    String name;

    public static void main(String[] args) {
        Person p1 = new Person();
        p1.name = "Tom";

        Person p2 = new Person();
        p2.name = "Tom";

        System.out.println(p1.name.equals(p2.name)); // true
        System.out.println(p1.name == p2.name); // true
        System.out.println(p1.name == "Tom"); // true
    }

    @Test
    public void test01() throws Exception {
        String str = "中国";
        System.out.println(str.getBytes("ISO8859-1").length); // 2
        // ISO8859-1把所有的字符都当做一个byte处理，处理不了多个字节
        System.out.println(str.getBytes("GBK").length); // 4 每一个中文都是对应2个字节
        System.out.println(str.getBytes("UTF-8").length); // 6 常规的中文都是3个字节

        /*
         * 不乱码：（1）保证编码与解码的字符集名称一样（2）不缺字节
         */
        System.out.println(new String(str.getBytes("ISO8859-1"), "ISO8859-1")); // 乱码
        System.out.println(new String(str.getBytes("GBK"), "GBK")); // 中国
        System.out.println(new String(str.getBytes("UTF-8"), "UTF-8")); // 中国

        System.out.println("123".indexOf(3 + '0'));
    }

    @Test
    public void test2() throws UnsupportedEncodingException {
//        // 字面量定义方式：字符串常量对象
//        String str = "hello";
//
//        // 构造器定义方式：无参构造
//        String str1 = new String();
//
//        // 构造器定义方式：创建"hello"字符串常量的副本
//        String str2 = new String("hello");
//
//        // 构造器定义方式：通过字符数组构造
//        char[] chars = {'a', 'b', 'c', 'd', 'e'};
//        String str3 = new String(chars);
//        String str4 = new String(chars, 0, 3);
//
//        // 构造器定义方式：通过字节数组构造
//        byte[] bytes = {97, 98, 99};
//        String str5 = new String(bytes);
//        String str6 = new String(bytes, "GBK");
//        int i = Integer.parseInt("123", 8);
//        System.out.println(i);

        String str = "1234567890";
        char[] chars = new char[str.length()];
        str.getChars(0, str.length(), chars, 0);
        System.out.println(chars);
        byte[] bytes = {97, 98, 99, 100};
    }
}